#ifndef REQUESTMSG_H
#define REQUESTMSG_H
#include "codec.h"
#include "Message.pb.h"
using namespace std;

struct RequestInfo
{
    int cmdtype;
    QString clientID;
    QString serverID;
    QString sign;
    QString data;
};

class RequestCodec : public Codec
{
public:
    RequestCodec();
    // 对传入的数据进行序列化
    RequestCodec(RequestInfo* info);
    // 对传入的数据进行反序列化
    RequestCodec(QString msg);
    ~RequestCodec();

    // 初始化函数
    // 对传入的数据进行序列化, 传递给序列化对象
    void initMessage(RequestInfo* info);
    // 对传入的数据进行序列化, 传递给序列化对象
    void initMessage(QString msg);

    // 重写父类虚函数
    QString encodeMsg();
    void decodeMsg(void* output);

private:
    string m_encMsg;
    RequestMsg m_msg;
    RequestInfo m_info;
};

#endif // REQUESTMSG_H
